package com.xjj.myoa.controller;

import com.xjj.myoa.model.OaUser;
import com.xjj.myoa.service.Impl.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller  //表示当前这个java类是属于控制层的。作用：把UserController这个类创建对象，并且注入到spring容器当中，供程序使用
@ResponseBody  //所有发生到这个类的请求，响应的方式都是以响应体回传
@RequestMapping(value="user") // 映射请求的地址就写在这里
public class UserController {
    //注入对象给到当前类
    @Autowired
    UserServiceImpl userService;
    //定义一个方法来处理一个请求
    @GetMapping  (value="/list")//这个注解可以映射到get请求方式
   public List<OaUser> userList(){
        //调用service层的方法来处理请求逻辑
        //UserServiceImpl userService= new UserServiceImpl();
        List<OaUser> oaUserList = userService.getUserListService();
       return oaUserList;
   }
    @PostMapping(value="/delete")//这个注解可以映射到post请求方式
    //如果前段传的参数类型是字符串那么可以使用相同的参数名来接受参数（eg:前段的参数名是id，那么方法中的参数名也是id）
    public boolean deleteOaUser(String id){
        //调用service层的方法来处理请求逻辑
        //Integer.parseInt(id) 发生格式化异常 132456123dddweqw多少度
        boolean result = false;
        try {
            result = userService.removeUserService(Integer.parseInt(id));
        }catch(Exception e){//捕获异常
            //捕获到异常做什么处理写在这里
            e.printStackTrace();
        }finally{//不管发不发生异常这里代码都可以执行

        }

        System.out.println("wqeweqweqwe");
        return result;
    }

    @RequestMapping("/new")
    public boolean newOaUser(OaUser orgUser){
        System.out.println(orgUser);
        //调用service层的方法来处理请求逻辑
        boolean result = userService.addUserService(orgUser);
        return result;
    }

    @RequestMapping("edit")
    public boolean editOaUser(OaUser orgUser){
        //调用service层的方法来处理请求逻辑
        boolean result = userService.editUserService(orgUser);
        return result;
    }

}
